/**
 * @since 2024-09-27 检测开始标志
 * @since 2024-09-27 背景色序号
 * @since 2024-09-27 背景色，三原色红绿蓝 + 黑白
 */
let start = false
let bgColorNum = 0;
const bgColorArray = new Array("red", "green", "blue", "black", "white");

/**
 * @since 2024-09-27 监听事件
 */
document.addEventListener("DOMContentLoaded", function(event) {
    /**
     * @since 2024-09-27 按钮和说明文字内容
     */
    document.title = chrome.i18n.getMessage("extension_name");
    document.getElementById("title").innerHTML = chrome.i18n.getMessage("index_title");
    document.getElementById("content").innerHTML = chrome.i18n.getMessage("index_content");

    /**
     * @since 2024-09-27 开始按钮
     */
    document.getElementById("title").addEventListener("click", function (event){
        /**
         * @since 2024-09-27 隐藏屏幕
         */
        document.getElementById("start").style.display = "none";

        /**
         * @since 2024-09-27 全屏模式
         */
        if (!document.fullscreenElement) {
            document.documentElement.requestFullscreen().catch(err => {
                // console.log("全屏失败", err.message);
            });
        } else {}

        /**
         * @since 2024-09-27 初始化数据
         */
        start = true;
        bgColorNum = 0;
        ChangeBgColor();

        /**
         * @since 2024-09-27 阻止冒泡
         */
        event.stopPropagation();
    });

    /**
     * @since 2024-09-27 监听键盘事件
     */
    document.addEventListener('keydown', function(event) {
        /**
         * @since 2024-09-27 未开始
         */
        if(start === false) return ;

        // console.log("keyCode", event.keyCode);
        switch (event.keyCode) {
            case 37: // 右键
                bgColorNum = bgColorNum-2;
            case 39: // 左键
            case 32: // 空格键
            case 13: // 回车键
                ChangeBgColor();
                break;
            case 27: // ESC键，捕捉不到
            default: // 其他按键
                break;
        }
    });

    /**
     * @since 2024-09-27 全屏监听事件
     */
    document.addEventListener('fullscreenchange', function() {
        /**
         * @since 2024-09-27 非全屏状态
         */
        if (!document.fullscreenElement) return Init();
    });

    /**
     * @since 2024-09-27 监听点击事件
     */
    document.addEventListener('click', function(event) {
        if(start) return ChangeBgColor();
    });
});

/**
 * @title 改变背景色
 * @author start2004
 * @since 2024-09-27
 *
 * @return null
 */
function ChangeBgColor(){
    // console.log("bgColorNum", bgColorNum);

    /**
     * @since 2024-09-27 右键会导致负数
     */
    if(bgColorNum < 0) bgColorNum = bgColorArray.length-1;

    /**
     * @since 2024-09-27 检测结束
     */
    if(bgColorNum >= bgColorArray.length){
        return Init(true);
    } else {}

    /**
     * @since 2024-09-27 设置背景色
     */
    document.body.style.backgroundColor = bgColorArray[bgColorNum];
    bgColorNum++;
}

/**
 * @title 初始化数据和显示，退出全屏
 * @author start2004
 * @since 2024-09-27
 *
 * @param {boolean} exitFull 退出全屏标志
 * @return null
 */
function Init(exitFull){
    // console.log("Init", exitFull);
    start = false;
    bgColorNum = 0;
    document.body.style.backgroundColor = "white";
    document.getElementById("start").style.display = "inline";

    /**
     * @since 2024-09-27 退出全屏
     */
    if (document.fullscreenElement) document.exitFullscreen();
}